﻿//#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (sum=1; sum <=100; sum++)
//	{
//		for (i=2; i < sum; i++)
//		{
//			if (sum % i == 0)
//			{
//				break;
//			}
//		}
//		if (i == sum)
//		{
//			printf("%d ", sum);
//		}
//	}
//}


//int main(void)
//{
//    /*********Begin*********/
//    int i = 0;
//    double m = 0.0;
//    int n = 0;
//    double sum = 0.0;
//    double sum1 = 0.0;
//
//    scanf("%lf %d", &m, &n);
//    for (i = 0; i < n; i++)
//    {
//        sum += m;
//        m = m / 2.0;
//        sum1 += m;
//    }
//    printf("%.2lf %.2lf", m, sum+sum1);
//    /*********End**********/
//    return 0;


//int main(void)
//{
//    /*********Begin*********/
//    int i = 0;
//    int n = 0;
//    int sum = 1;
//    while (scanf("%d", &n) != EOF)
//    {
//        if (n < 5)
//        {
//            sum = 0;
//        }
//        if (n>=5)
//        {
//            for (i = 5; i <= n; i += 5)
//            {
//                sum *= i;
//            }
//            printf("%d\n", sum);
//        }
//      
//    }
//    /*********End**********/
//    return 0;
//}


//辗转相除法求最大公约数和最小公倍数
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int num1 = 0;
//	int num2 = 0;
//	int tmp = 0;
//	scanf("%d %d", &num1, &num2);
//	int n1 = num1;
//	int n2 = num2;
//	while (num2 != 0)
//	{
//		tmp = num1 % num2;
//		num1 = num2;
//		num2 = tmp;
//	}
//	printf("最大公约数是:%d\n", num1);
//	printf("最小公倍数是:%d\n", n1 * n2 / num1);
//}

//统计出现的数字字母空格其他字符
//int main(void)
//{
//    /*********Begin*********/
//    int z = 0;//字母
//    int m = 0;//数字
//    int b = 0;//空格
//    int o = 0;//其他
//    char ch;
//    while ( (ch= getchar())!= '\n')
//    {
//        if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
//        {
//            z++;
//            continue;
//        }
//
//        if (ch >= '0' && ch <= '9')
//        {
//            m++;
//            continue;
//        }
//        if (ch == ' ')
//        {
//            b++;
//            continue;
//        }
//        else
//        {
//            o++;
//            continue;
//        }
//    }
//    printf("%d %d %d %d", z, m, b, o);
//
//    /*********End**********/
//    return 0;
//}


//s = a+aa+aaa+aaaa+...+n个a
//#include<stdio.h>
//int main(void)
//{
//    /*********Begin*********/
//    int n = 0;//数字大小
//    int m = 0;//重复次数
//    int t = 1;//1 10 100 1000...
//    int a = 0;//1  2   3   4 
//    int sum = 0;
//    int add = 0;
//    scanf("%d %d", &n, &m);
//    for (a = 1; a <= m; a++)
//    {
//        add += t * n;
//        sum += add;
//        t *= 10;
//    }
//    printf("%d", sum);
//
//    /*********End**********/
//    return 0;
//}

//判断圆括号是否匹配
//int main()
//{
//    char ch;
//    int i = 0;//左括号
//    int j = 0;//右括号
//    while ((ch = getchar()) != '\n')//一定要按照以下顺序
//    {
//        if (i < j) //判断是否为 ()()())( 等类似情况
//        {
//            break;
//        }
//        if (ch == ')')
//        {
//            j++;
//            continue;
//        }
//
//        if (ch == '(')
//        {
//            i++;
//            continue;
//        }
//    }//退出循环
//    if (i == j)
//    {
//        printf("匹配\n");
//    }
//    else
//    {
//        printf("不匹配\n");
//    }
//    return 0;
//}

//加密字母，输入一个字母，加密为其后第四位
//#include<stdio.h>
//int main()
//{
//    char ch;
//    while ((ch = getchar()) != '\n')
//    {
//        if (ch >= 'A' && ch <= 'V')
//        {
//            ch += 4;
//            printf("%c", ch);
//        }
//        if (ch >= 'W' && ch <= 'Z')
//        {
//            ch -= 22;
//            printf("%c", ch);
//        }
//    }
//}

//int main(void)
//{
//    /*********Begin*********/
//    int s = 0;//小写字母
//    int m = 0;//数字
//    int b = 0;//大写
//    int o = 0;//其他
//    char ch;
//    while ( (ch= getchar())!= '\n')
//    {
//        if (ch == 'Q')
//        {
//            b++;
//            break;
//        }
//        if (ch == 'q')
//        {
//            s++;
//            break;
//        }
//        if ((ch >= 'a' && ch <= 'z') )
//        {
//            s++;
//            continue;
//        }
//        if ((ch >= 'A' && ch <= 'Z'))
//        {
//            b++;
//            continue;
//        }
//
//        if (ch >= '0' && ch <= '9')
//        {
//            m++;
//            continue;
//        }
//        else
//        {
//            o++;
//            continue;
//        }
//    }
//    printf("大写字母有：%d\n小写字母： %d\n数字： %d\n其他： %d\n", b, s, m, o);
//
//    /*********End**********/
//    return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int  main()
//{
//    int i = 1;
//    int sum = 0;
//
//    while (i <= 100)
//    {
//        sum += i;
//        i++;
//    }
//    printf("sum=%d\n", sum);
//    return 0;
//}
//#include <stdio.h>
//int  main()
//{
//	int i = 0;
//	int j = 0;
//	int sum1 = 0;
//	int sum2 = 1;
//	int count = 0;
//	for (i = 2; i <= 20; i += 2)
//	{
//		sum1 += i;
//	}
//	for (j = 1; j <= 20; j += 2)
//	{
//		sum2 *= j;
//	}
//	printf("%d\n", sum1);
//	printf("%d\n", sum2);
//}
//#include <stdio.h>
//int main(void)
//{
//
//    int s = 0;//小写字母
//    int m = 0;//数字
//    int b = 0;//大写
//    int o = 0;//其他
//    char ch;
//    while ((ch = getchar()) != '\n')
//    {
//        if (ch == 'Q')
//        {
//            b++;
//            break;
//        }
//        if (ch == 'q')
//        {
//            s++;
//            break;
//        }
//        if ((ch >= 'a' && ch <= 'z'))
//        {
//            s++;
//            continue;
//        }
//        if ((ch >= 'A' && ch <= 'Z'))
//        {
//            b++;
//            continue;
//        }
//
//        if (ch >= '0' && ch <= '9')
//        {
//            m++;
//            continue;
//        }
//        else
//        {
//            o++;
//            continue;
//        }
//    }
//    printf("大写字母有：%d\n小写字母： %d\n数字： %d\n其他： %d\n", b, s, m, o);
//}

//统计单词个数
//int main()
//{
//	char ch;
//	int count = 0;//统计单词个数
//	int flag = 0;//判断一个单词是否输入完成
//	while ((ch = getchar()) != '\n')
//	{
//		if (ch == ' ')
//		{
//			flag = 0;
//		}
//		else if(flag==0)
//		{
//			flag = 1;
//			count++;
//		}
//	}
//	printf("count=%d", count);
//}


//隔行打印
//1
//123
//12345....
//int main()
//{
//	int i = 0;
//	int n = 7;
//	int j = 0;
//	
//	for (i = 1; i <=n; i+=2)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d", j);
//		}
//		printf("\n");
//	}
//}

//打印九九乘法表
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 1; i < 10; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%dX%d=%-2d", j, i, i * j);
//			printf(" ");
//		}
//		printf("\n");
//	}
//}

//将一面额为10元倍数的整钱（面额为大于等于10，并小于等于100）
//换成1元、2元和5元的零钱组合（每种面值都要有）。
//输入要换的面额（如10元），
//输出所有可能的换法数量（如2种）。
//要求按5，2，1从多到少输出
int main()
{
	int o = 1;//一元的面额
	int t = 1;//两元的面额
	int f = 1;//五元的面额
	int count = 0;//统计次数
	int sum = 0;//输入面额大小
	scanf("%d", &sum);
		if (sum >= 10 && sum <= 100)
		{
			for (o = 1; o <= sum; o++)
			{
				for (t = 1; t <= sum; t++)
				{
					for (f = 1; f <= sum; f++)
					{
						if (sum == o + 2 * t + 5 * f)
						{
							printf("%d %d %d\n", f, t, o);
							count++;
						}
					}
				}
			}
			printf("count=%d", count);
		}
}
//// 
//写代码将三个整数数按从大到小输出。
//
//例如：
//
//输入：2 3 1
//
//输出：3 2 1
//

//#include<stdio.h>
//int main()
//{
//	int n = 0;
//	int m = 0;
//	int i = 0;
//	scanf("%d %d %d", &n, &m, &i);
//	if (n >= m)
//	{
//		if (m >= i)
//		{
//			printf("%d %d %d", n, m, i);
//		}
//		else
//		{
//			printf("%d %d %d", n, i, m);
//		}
//	}
//	else
//	{
//		if (n >= i)
//		{
//			printf("%d %d %d", m, n, i);
//		}
//		else
//		{
//			if (m > i)
//			{
//				printf("%d %d %d", m, i, n);
//			}
//			else
//			{
//				printf("%d %d %d", i, m, n);
//			}
//		}
//		
//	}
//
//}

//写一个代码：打印100~200之间的素数
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 99; i <= 200; i+=2)
//	{
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		if (i == j)
//		{
//			printf("%d ", i);
//		}
//	}
//}

//打印1000年到2000年之间的闰年
//判断闰年的方法，四年一闰，百年不闰，四百年再闰
//即年份能被4整除，且不能被100整除，或者能被400整除
//int main()
//{
//	int y = 0;
//	int count = 0;
//	for (y = 1000; y <= 2000; y++)
//	{
//		if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//		{
//			printf("%d ", y);
//			count++;
//		}
//	}
//	printf("\n%d", count);//计算闰年个数
//}

//假设兵近一千，每3人一列余2、5人一列余3、7人一列余3人，则兵有多少？
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    for (n = 0;n<=1000; n++)
//    {
//        if (n % 3 == 2 && n % 5 == 3 && n % 7 == 3)
//        {
//            printf("%d ", n);
//            
//        }
//    }
//}

//1.从键盘输入一个字符，一个整数
//2.在屏幕输出满足下列形状的图形，其中图形中的字符应用输入的字符替代，而输出行数由输入的整数确定, 每行输出的字符个数也由输入的整数确定
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int i = 0;
//    int j = 0;
//    char ch = getchar();
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            printf("%c", ch);
//        }
//        printf("\n");
//    }
//}

//1.从键盘输入一个字符，一个整数
//2.在屏幕输出满足下列形状的图形，其中图形中的字符应用输入的字符替代，而输出行数由输入的整数确定, 每行输出的字符个数也由输入的整数确定，规律请从输入输出样例寻找
//
//如输入 & 3
//则输出
//&
//&&
//&&&
//#include<stdio.h>
//int main()
//{
//    int n = 0;
//    int i = 0;
//    int j = 0;
//    char ch = getchar();
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j <=i; j++)
//        {
//            printf("%c", ch);
//        }
//        printf("\n");
//    }
//}
 

//编写一个程序能找出100以内所有的素数。每行输出5个数，每两个数之间用一个空格作为分隔
//#include<stdio.h>
//int main()
//{
//	int i = 0;
//	int j = 0;
//	int count = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				break;
//			}
//		}
//		if (i == j)
//		{
//			printf("%d ", i);
//			count++;
//			if (count == 5)
//			{
//				printf("\n");
//				count = 0;
//			}
//		}
//	}
//}


//⼀个正整数，它加上100后是⼀个完全平⽅数，再加上168⼜是⼀个完全平⽅数，请问满足条件的最小的数是多少？
//#include<math.h>
//int main()
//{
//	int n = 0;
//	int x = 0;
//	int y = 0;
//		for (n =-100;n<=27956; n++)
//		{
//			x = sqrt(n + 100);
//			y = sqrt(n + 268);
//			if (n+100==x*x &&n+268 ==y*y)
//			{
//				printf("%d",n);
//				break;
//			}
//		}
//	
//}



